Skip to main content

Persistenza dei dati

La durata delle variabili e dei loro dati si estende dal momento in cui una variabile viene creata al momento in cui viene eliminata e il suo spazio di memoria viene nuovamente liberato. I tempi di creazione, inizializzazione o istanziazione di variabili dipendono dall'ambito dichiarato. Di solito anche il momento del rilascio della memoria. Ad esempio, la memoria delle variabili globali viene rilasciata al termine dell'applicazione.

Possono conservare i dati più a lungo del solito. I seguenti meccanismi in CODESYS sono previsti a tale scopo.

Meccanismi di conservazione dei dati

  • (UN): Elenco di variabili globali persistenti_cds_icon_persistent_variables_configuration.png con la parola chiave PERSISTENT RETAIN

    Le variabili persistenti mantengono il loro valore quando l'applicazione viene ricaricata. I valori vengono ripristinati anche dopo un download, un avvio a caldo o un avvio a freddo.

  • (B): conservare le variabili con la parola chiave RETAIN

    Le variabili Retain mantengono il loro valore dopo un avvio a caldo, ma non quando l'applicazione viene caricata di nuovo, un download o un avvio a freddo.

  • (C): Variabili del gestore di persistenza di CODESYS Application Composer

    Le variabili di Persistence Manager vengono salvate in un file esterno.

  • (D): variabili della ricetta

    Le variabili della ricetta e i relativi valori vengono salvati nel file della ricetta.

meccanismi a confronto

Quale meccanismo è adatto per quale applicazione? La tabella considera alcuni casi d'uso comuni. Gli esempi concreti si riferiscono a un controllo domestico.

Tabella 6. Confronto di meccanismi e casi d'uso

caso d'uso

(A) Variabili persistenti

(B) Conserva le variabili

(c) Variabili del gestore di persistenza

(D) Variabili della ricetta

1

L'applicazione deve ricevere le impostazioni del dispositivo.

Esempio: dopo un'interruzione di corrente, il controllo della casa deve avere le informazioni disponibili su quanto tempo deve essere alzata una tenda.

Adatto1

Caso d'uso preferito

In questo caso puoi anche utilizzare le variabili ritentive invece delle variabili persistenti. Questo è vantaggioso per le variabili la cui dichiarazione viene spesso modificata.

Adatto

Caso d'uso preferito

Le variabili Retain sono vantaggiose quando le loro dichiarazioni vengono modificate frequentemente.

Adatto2

Vantaggioso per i controller che non dispongono di alcun supporto hardware

Ciò è reso possibile da funzionalità speciali come il double file buffering.

Possibile, ma molto ingombrante e quindi sconsigliato

2

L'applicazione deve anche ricevere valori dopo modifiche o estensioni di programma.

2a: Espansioni rare

Esempio: un programmatore di applicazioni aggiunge un nuovo interruttore al programma e installa una nuova luce. Il controllo della casa deve quindi avere ancora i valori che sono stati salvati fino a quel momento.

Adatto1

Caso d'uso preferito

Adatto

Adatto2

Possibile, ma ingombrante

2b: Modifiche più libere, inclusa l'eliminazione o la modifica del tipo di dati delle variabili

Il controllo della casa è in esecuzione e persiste. Se un programmatore applicativo amplia il controllo con una nuova funzionalità e quindi con un'ulteriore variabile persistente in un blocco funzione, i valori fino a quel momento salvati devono essere mantenuti. Ad esempio il programma viene ampliato in un FB da una variabile che comanda lo spegnimento automatico di una lampada precedentemente non controllata dopo un determinato tempo. Dopo l'ampliamento, il controllo di casa deve avere a disposizione gli orari di tutte le lampade controllate.

Non adatto

Adatto

I dati delle variabili Retain vengono conservati il più possibile dopo una modifica online.

Adatto, per quanto possibile 2

Caso d'uso preferito

Possibile se testuale, ma ingombrante

2c: L'applicazione deve ricevere valori dopo un download.

Adatto

Non adatto

Adatto

Adatto

3

L'applicazione deve essere in grado di utilizzare diversi set di valori.

Esempio: le impostazioni operative per l'estate, l'inverno e le vacanze devono essere salvate e importate nuovamente secondo necessità.

Non adatto

Non adatto

Non adatto

Adatto

Caso d'uso preferito

4

L'applicazione deve essere in grado di utilizzare le impostazioni di un altro sistema.

Deve essere possibile trasferire le impostazioni a un altro sistema che utilizza variabili simili.

Non adatto

Non adatto

Adatto2

Adatto3

5

L'applicazione deve fornire dati leggibili dall'uomo.

L'utente deve essere in grado di leggere, confrontare e modificare i dati.

Non adatto

Non adatto

Adatto2

Adatto3



1 Svantaggio: possibile solo se il sistema runtime supporta questo meccanismo ed è disponibile una memoria NVRam o un UPS. Vantaggio: velocità; caso d'uso consigliato: 1 e 2a

2 Svantaggio: in caso di un numero elevato di variabili (> 10000) sono previsti lunghi tempi di attesa per un'inizializzazione e uno spegnimento. Vantaggio: non è necessaria alcuna attrezzatura di memoria speciale; La conservazione del valore si applica anche a modifiche, estensioni o eliminazioni.

3 Vantaggio: modificabile esternamente, trasferibilità. Svantaggio: imbarazzante

Durata delle variabili quando vengono chiamati i comandi online

Input dell'utente nel menu In linea

Variabile con durata normale

Nessuno dei due RETAIN ancora PERSISTENT

RETAIN

PERSISTENT

RETAIN PERSISTENT

PERSISTENT RETAIN

comando cambiamento in linea

x

x

x

comando resettare caldo

i

x

x

comando Ripristina a freddo

i

i

x

comando caricare

i

i

X 1

comando reimpostare l'origine

i

i

i

x : la variabile mantiene il suo valore.

i : la variabile viene inizializzata.

1 Nota: per la struttura dei dati persistenti, si prega di notare le informazioni in "Meccanismo di download".

Durata delle variabili durante il caricamento di un'applicazione di avvio

I valori delle variabili normali perdono il loro valore e vengono reinizializzati.

I valori delle variabili persistenti sono protetti

  • Quando la struttura delle variabili persistenti in memoria corrisponde alla struttura nell'elenco dei dati persistenti.

  • Quando i dati persistenti sono stati solo estesi. In questo caso, solo le variabili aggiunte di recente vengono impostate con i loro valori predefiniti.

I valori delle variabili ritentive sono protetti

  • Quando la struttura delle variabili ritentive in memoria corrisponde alla struttura nell'elenco dei dati persistenti.

  • Quando le variabili ritentive corrispondono all'applicazione (il GUID deve corrispondere).

Se i requisiti per il ripristino dei valori delle variabili ritentive e delle variabili persistenti non vengono soddisfatti all'avvio dell'applicazione, si verifica una "mancata corrispondenza di conservazione". La reazione a questa discrepanza è descritta nella documentazione del produttore dell'hardware.

Per ulteriori informazioni, vedere: Conserva i dati con variabili persistenti